<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        // 1. 定义promise实例
        let p = new Promise((res, rej) => {
            setTimeout(() => {
                res('报名成功');
            }, 1000);
        })
        .then(val => {
            console.log(val);
            return new Promise((res, rej) => {
                setTimeout(() => {
                    res('学习成功')
                }, 1000);
            })
        })
        .then(val => {
            console.log(val);
            return new Promise((res, rej) => {
                setTimeout(() => {
                    // res('简历成功')
                    rej('简历有问题')
                }, 1000);
            })
        })
        .then(val => {
            console.log(val);
            return new Promise((res, rej) => {
                setTimeout(() => {
                    res('面试成功')
                }, 1000);
            })
        })
        .then(val => {
            console.log(val);
            return new Promise((res, rej) => {
                setTimeout(() => {
                    res('上班成功')
                }, 1000);
            })
        })
        .then(val=>{
            console.log(val);
        }).catch(rea=>{
            console.log(rea);
        })


            // 1.1 设置单次定时器
                // 1.1.1 调用resolve函数
        // 2. 调用promise实例的then方法
            // 2.1 打印 resolve 参数
            // 2.2 返回新的promise实例
                // 2.2.1 设置单次定时器
                    // 2.2.1.1 调用resolve函数
        // 3. 调用promise实例的then方法
            // 3.1 打印resolve参数
            // 3.2 返回新的promise实例
            // 循环往复...

        // 4. 调用promise实例的catch方法
            // n.1 定义reject函数
            // n.2 打印reject函数的参数


        // 5. 过程异常处理演示 - 调用reject函数
    </script>
</body>

</html>